import cv2
import time
from datetime import datetime

# 打开摄像头，参数0表示使用默认的摄像头
cap = cv2.VideoCapture(0)

# 初始化开始时间
start_time = time.time()
# 设置保存图片的时间间隔（秒）
save_interval = 3

# 图片计数器，用于生成不同的文件名（可选）
image_counter = 0

while True:
    # 读取摄像头的帧
    ret, frame = cap.read()
    
    # 如果成功读取帧，ret为True
    if ret:
        # 显示图像
        cv2.imshow('Live Video', frame)
        
        # 检查是否到了保存图像的时间
        if (time.time() - start_time) >= save_interval:
            # 生成带有时间戳的文件名，防止文件被覆盖
            # timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
            filename = f"camera_image.jpg"
            # 也可以使用图片计数器生成文件名（可选）
            # filename = f"camera_image_{image_counter}.jpg"
            # image_counter += 1
            
            # 保存图像到本地
            cv2.imwrite(filename, frame)
            
            # 打印保存信息
            print(f"Image saved as {filename}")
            
            # 重置开始时间，以便下一个间隔计时
            start_time = time.time()
        
        # 等待按键，如果按下'q'键则退出循环
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# 释放摄像头资源
cap.release()
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()